package com.dp.system.mapper;

import java.util.List;
import com.dp.system.domain.SysAlarmLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 报警记录Mapper接口
 *
 * @author ruoyi
 * @date 2025-02-10
 */
@Mapper
public interface SysAlarmLogMapper
{
    /**
     * 查询报警记录
     *
     * @param logId 报警记录主键
     * @return 报警记录
     */
    public SysAlarmLog selectSysAlarmLogByLogId(Long logId);

    /**
     * 查询报警记录列表
     *
     * @param sysAlarmLog 报警记录
     * @return 报警记录集合
     */
    public List<SysAlarmLog> selectSysAlarmLogList(SysAlarmLog sysAlarmLog);

    /**
     * 新增报警记录
     *
     * @param sysAlarmLog 报警记录
     * @return 结果
     */
    public int insertSysAlarmLog(SysAlarmLog sysAlarmLog);

    /**
     * 修改报警记录
     *
     * @param sysAlarmLog 报警记录
     * @return 结果
     */
    public int updateSysAlarmLog(SysAlarmLog sysAlarmLog);

    /**
     * 删除报警记录
     *
     * @param logId 报警记录主键
     * @return 结果
     */
    public int deleteSysAlarmLogByLogId(Long logId);

    /**
     * 批量删除报警记录
     *
     * @param logIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysAlarmLogByLogIds(@Param("list") Long[] logIds);

    /**
     * 批量删除报警记录
     *
     * @param ruleIds 需要删除的数据规则ID集合
     * @return 结果
     */
    public int deleteSysAlarmLogByRuleIds(@Param("list") Long[] ruleIds);

    /**
     * 批量新增报警记录
     *
     * @param sysAlarmLogList 报警记录列表
     * @return 结果
     */
    public int batchSysAlarmLog(@Param("list") List<SysAlarmLog> sysAlarmLogList);


    /**
     * 通过报警规则ID删除报警记录信息
     *
     * @param ruleId 报警规则ID
     * @return 结果
     */
    public int deleteSysAlarmLogByRuleId(Long ruleId);

    List<Object> getAlarmStatistics();

    /**
     * 查询当前的温度报警信息
     * @return 温度报警信息列表
     */
    List<SysAlarmLog> selectCurrentAlarmLogs();
}